package com.tl.boot.mapper.menu;

import com.tl.boot.entity.menu.domain.MenuAfterLoginInfo;
import com.tl.boot.entity.menu.domain.MenuDetailInfo;
import com.tl.boot.entity.menu.domain.MenuInfo;
import com.tl.boot.entity.menu.domain.MenuResourceInfo;
import com.tl.boot.entity.menu.vo.ListMenuInfoVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * com.tl.boot.mapper.menu -- MenuMapper
 * Description:
 * Created by joshua_liu <a href="mailto:joshualwork@163.com"></a>
 * On 2019/9/16 15:09
 */
public interface MenuMapper {
    void addMeanuInfo(MenuInfo menuInfo);

    List<MenuAfterLoginInfo> parentMenuInfos(List<Long> parentIds);

    void insertMenuResourceInfo(MenuResourceInfo menuResourceInfo);

    List<ListMenuInfoVO> listMenuInfo(MenuInfo menuInfo);

    MenuDetailInfo queryMenuInfo(@Param("menuId") Long menuId);

    void updateMenuInfo(MenuInfo menuInfo);

    void delMenuInfo(@Param("menuId") Long menuId);

    void updateMenuResourceBindInfo(MenuResourceInfo menuResourceInfo);

    List<MenuAfterLoginInfo> queryMenuAfterLoginInfo(
            @Param("resultMenuIds") List<Long> resultMenuIds,
            @Param("hasPermissionIds") List<Long> hasPermissionIds);
}
